// components/template-modal/template-modal.js
Component({

  /**
   * 组件的属性列表
   */
  properties: {
    show: {
      type: Boolean,
      value: false
    },
    formData: {
      type: Object,
      value: {
        name: '',
        price: '',
        unit: '',
      }
    }
  },

  /**
   * 组件的初始数据
   */
  data: {
    unitArray: ['份', '例', '个', '打', '半打']
  },

  /**
   * 组件的方法列表
   */
  methods: {
    onInput(e) {
      const field = e.currentTarget.dataset.field;
      this.setData({
        [`formData.${field}`]: e.detail.value
      });
    },
    bindPickerChange: function (e) {
      this.setData({
        ['formData.unit']: this.data.unitArray[e.detail.value]
      })
    },
    onCancel() {
      this.setData({
        show: false
      })
      this.triggerEvent('cancel');
    },
    onConfirm() {
      this.setData({
        show: false
      })
      this.triggerEvent('confirm', this.data.formData);
    },
    handleInput(e) {
      let value = e.detail.value;
      // 只允许输入数字和小数点
      value = value.replace(/[^\d.]/g, '');
      // 保证只有一个小数点
      value = value.replace(/\.{2,}/g, '.');
      value = value.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.');
      // 保证小数点后最多两位
      value = value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3');
      this.setData({
        'formData.price': value
      });
    },
  }
})